//package com.gilgamesh.mall.product.config;
//
//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
//import com.gilgamesh.mall.sdk.common.RedisConstant;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.ibatis.cache.Cache;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.stereotype.Component;
//import javax.annotation.Resource;
//import java.util.concurrent.locks.ReadWriteLock;
//import java.util.concurrent.locks.ReentrantReadWriteLock;
//
///**
// * @author yanm
// * @date 2021/1/26 11:42
// **/
//@Slf4j
//@Component
//public class MybatisRedisCache implements Cache {
//    // 读写锁
//    private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock(true);
//
//    @Resource
//    private RedisTemplate redisTemplate;
//
//    @Override
//    public ReadWriteLock getReadWriteLock() {
//        return this.readWriteLock;
//    }
//
//    public MybatisRedisCache() {
//        super();
//    }
//
//    private String id;
//    @Override
//    public String getId() {
//        return id;
//    }
//
//    public void setId(String id){
//        this.id = id;
//    }
//
//    @Override
//    public void putObject(Object o, Object o1) {
//        redisTemplate.opsForHash().put(RedisConstant.MYBATIS_PRODUCT,o,o1);
//    }
//
//    @Override
//    public Object getObject(Object o) {
//        return redisTemplate.opsForHash().get(RedisConstant.MYBATIS_PRODUCT,o);
//    }
//
//    @Override
//    public Object removeObject(Object o) {
//        return redisTemplate.opsForHash().delete(RedisConstant.MYBATIS_PRODUCT,o);
//    }
//
//    @Override
//    public void clear() {
//        redisTemplate.delete(RedisConstant.MYBATIS_PRODUCT);
//    }
//
//    @Override
//    public int getSize() {
//        return redisTemplate.opsForHash().size(RedisConstant.MYBATIS_PRODUCT).intValue();
//    }
//}
